import os
import random
import string

def random_rename_files(folder):
    """
    随机重命名指定目录中的所有文件
    
    Args:
        folder (str): 要处理的目录路径
    
    Returns:
        tuple: (成功标志, 错误信息或成功消息)
    """
    try:
        if not os.path.isdir(folder):
            return False, f"指定路径 '{folder}' 不是有效目录"
        
        files = os.listdir(folder)
        if not files:
            return False, "目录为空，没有文件可重命名"
        
        for file in files:
            file_path = os.path.join(folder, file)
            if os.path.isfile(file_path):
                ext = os.path.splitext(file)[1]
                random_name = ''.join(random.choices(string.ascii_letters + string.digits, k=10)) + ext
                new_file_path = os.path.join(folder, random_name)
                os.rename(file_path, new_file_path)
        
        return True, f"成功随机重命名 {len(files)} 个文件"
    
    except Exception as e:
        return False, f"随机重命名失败: {str(e)}"

def sequential_rename_files(folder):
    """
    按顺序重命名指定目录中的所有文件
    
    Args:
        folder (str): 要处理的目录路径
    
    Returns:
        tuple: (成功标志, 错误信息或成功消息)
    """
    try:
        if not os.path.isdir(folder):
            return False, f"指定路径 '{folder}' 不是有效目录"
        
        files = sorted(os.listdir(folder))
        if not files:
            return False, "目录为空，没有文件可重命名"
        
        for i, file in enumerate(files):
            file_path = os.path.join(folder, file)
            if os.path.isfile(file_path):
                ext = os.path.splitext(file)[1]
                new_name = f"{i+1}{ext}"
                new_file_path = os.path.join(folder, new_name)
                os.rename(file_path, new_file_path)
        
        return True, f"成功按顺序重命名 {len(files)} 个文件"
    
    except Exception as e:
        return False, f"按顺序重命名失败: {str(e)}"

def random_then_sort_rename_files(folder):
    """
    先随机重命名所有文件，然后按新名称排序并按顺序重命名
    
    Args:
        folder (str): 要处理的目录路径
    
    Returns:
        tuple: (成功标志, 错误信息或成功消息)
    """
    try:
        if not os.path.isdir(folder):
            return False, f"指定路径 '{folder}' 不是有效目录"
        
        files = os.listdir(folder)
        if not files:
            return False, "目录为空，没有文件可重命名"
        
        # 第一步：随机重命名
        for file in files:
            file_path = os.path.join(folder, file)
            if os.path.isfile(file_path):
                ext = os.path.splitext(file)[1]
                random_name = ''.join(random.choices(string.ascii_letters + string.digits, k=10)) + ext
                new_file_path = os.path.join(folder, random_name)
                os.rename(file_path, new_file_path)
        
        # 第二步：按新名称排序并按顺序重命名
        sorted_files = sorted(os.listdir(folder))
        for i, file in enumerate(sorted_files):
            file_path = os.path.join(folder, file)
            if os.path.isfile(file_path):
                ext = os.path.splitext(file)[1]
                new_name = f"{i+1}{ext}"
                new_file_path = os.path.join(folder, new_name)
                os.rename(file_path, new_file_path)
        
        return True, f"成功随机后重排序命名 {len(files)} 个文件"
    
    except Exception as e:
        return False, f"随机后重排序命名失败: {str(e)}"    